import request from '@/utils/request'

const api = {
  AdminUser: '/users',
  Role: '/roles',
  Permission: '/permissions',
  Menu: '/menus',
  SimpleRoles: '/simpleRoles'
}

export function AdminUserList(parameter) {
  return request({
    url: api.AdminUser,
    method: 'get',
    data: parameter
  })
}

export function AdminUserAdd(parameter) {
  return request({
    url: api.AdminUser,
    method: 'post',
    data: parameter
  })
}

export function AdminUserUpdate(id, parameter) {
  return request({
    url: api.AdminUser + '/' + id,
    method: 'put',
    data: parameter
  })
}

export function AdminUserDestory(id) {
  return request({
    url: api.AdminUser + '/' + id,
    method: 'delete'
  })
}

/**
 * 给管理员分配角色
 * @returns {AxiosPromise}
 * @constructor
 */
export function AllotRoles(id, parameter) {
  return request({
    url: api.AdminUser + '/' + id + '/roles',
    method: 'put',
    data: parameter
  })
}

/**
 * 角色列表
 * @param parameter
 * @returns {AxiosPromise}
 * @constructor
 */
export function RoleList(parameter) {
  return request({
    url: api.Role,
    method: 'get',
    data: parameter
  })
}

/**
 * 新增角色
 * @param parameter
 * @returns {AxiosPromise}
 * @constructor
 */
export function RoleAdd(parameter) {
  return request({
    url: api.Role,
    method: 'post',
    data: parameter
  })
}

/**
 * 编辑角色
 * @param id
 * @param parameter
 * @returns {AxiosPromise}
 * @constructor
 */
export function RoleUpdate(id, parameter) {
  return request({
    url: api.Role + '/' + id,
    method: 'put',
    data: parameter
  })
}

/**
 * 删除角色
 * @param id
 * @returns {AxiosPromise}
 * @constructor
 */
export function RoleDestory(id) {
  return request({
    url: api.Role + '/' + id,
    method: 'delete'
  })
}

export function SimpleRoles() {
  return request({
    url: api.SimpleRoles,
    method: 'get'
  })
}

export function MenuList(parameter) {
  return request({
    url: api.Menu,
    method: 'get',
    data: parameter
  })
}

export function MenuAdd(parameter) {
  return request({
    url: api.Menu,
    method: 'post',
    data: parameter
  })
}

export function MenuUpdate(id, parameter) {
  return request({
    url: api.Menu + '/' + id,
    method: 'put',
    data: parameter
  })
}

export function MenuDestory(id) {
  return request({
    url: api.Menu + '/' + id,
    method: 'put'
  })
}


/**
 * 权限列表
 * @param parameter
 * @returns {AxiosPromise}
 * @constructor
 */
export function PermissionList(parameter) {
  return request({
    url: api.Permission,
    method: 'get',
    data: parameter
  })
}

export function PermissionAdd(parameter) {
  return request({
    url: api.Permission,
    method: 'post',
    data: parameter
  })
}

export function PermissionUpdate(id, parameter) {
  return request({
    url: api.Permission + '/' + id,
    method: 'put',
    data: parameter
  })
}

export function PermissionDestory(id) {
  return request({
    url: api.Permission + '/' + id,
    method: 'delete'
  })
}
